import aircv as ac
from common.tools import get_project_path, build_path


class FindImg:
    def img_imread(self, img_path):
        """
        读取图片并返回图像对象
        :param img_path: 图片路径
        :return: 图像对象
        """
        return ac.imread(img_path)

    def get_confidence(self, source_path, search_path):
        """
        查找搜索图片在源图片中的位置和匹配程度
        :param source_path: 原图路径，作为匹配的基准图像
        :param search_path: 需要查找的图片路径
        :return: None
        """
        # 读取原图和搜索图
        img_src = self.img_imread(source_path)
        img_sch = self.img_imread(search_path)

        # 使用 aircv 的 find_template 函数查找匹配位置和相似度
        result = ac.find_template(img_src, img_sch)

        # 输出匹配结果，包含位置坐标和相似度得分
        print(result)
        return result["confidence"]


if __name__ == '__main__':
    # 获取项目路径并构建原图的完整路径
    source_path = get_project_path() + build_path('img', 'source_img', 'dangdang_home_book_icon.png',
                                                  add_sep_before=True)
    print(source_path)
    # 另一种原图路径示例，可根据需求切换
    # source_path = get_project_path() + build_path('img', 'baidu_disk.png', add_sep_before=True)

    # 构建需要查找的目标图片的完整路径
    search_path = get_project_path() + build_path('img', 'assert_img', 'dangdang_home_book_icon.png',
                                                  add_sep_before=True)
    print(search_path)
    # 创建 FindImg 实例并调用 get_confidence 方法进行图像匹配
    FindImg().get_confidence(source_path, search_path)
